本发明提供一种安全存储器接口,所述安全存储器接口包括读取器块、写入器块和模式选择器,所述读取器块、写入器块和模式选择器在启用安全模式时检测存储器装置中的缺陷注入。模式选择器使用来自数据处理单元的存储器访问信息来启用或停用安全模式。因此,数据处理单元灵活地指示存储到存储器装置中的安全数据的量和位置。
1.一种安全存储器接口,包括:读取器块,当启用安全模式时,所述读取器块通过从由存储器装置传输的初始读取数据中分离检错码来产生将被传输到数据处理单元的最终读取数据;模式选择器,所述模式选择器使用来自数据处理单元的存储器访问信息来启用或停用安全模式,其中,读取器块包括:分离器,当启用安全模式时,分离器通过从初始读取数据中分离检错码来产生最终读取数据,当停用安全模式时,分离器从初始读取数据产生最终读取数据而不分离任何检错码;编码器,编码器从对应的地址和最终读取数据中的至少一种产生期望的检错码;比较器,比较器通过将从初始读取数据中分离的检错码与期望的检错码进行比较来产生错误检测信号。
2.如权利要求1所述的安全存储器接口,其中,当停用安全模式时,读取器块而从初始读取数据产生最终读取数据而不分离任何检错码。
3.如权利要求2所述的安全存储器接口,其中,存储器访问信息包括指令名,模式选择器包括:指令名解码器,当所述指令名对应安全读取指令时,指令名解码器启用安全模式,当所述指令名对应常规读取指令时,指令名解码器停用安全模式。
4.如权利要求3所述的安全存储器接口,其中,读取器块和指令名解码器设置在数据处理单元中,所述数据处理单元为CPU。
5.如权利要求2所述的安全存储器接口,其中,存储器访问信息包括对于初始读取数据将被访问的存储器装置的地址,模式选择器包括:地址解码器,当将被访问的存储器装置的地址为安全地址时,地址解码器启用安全模式,当将被访问的存储器装置的地址为非安全地址时,地址解码器停用安全模式。
6.如权利要求5所述的安全存储器接口,其中,地址解码器设置在产生将被访问的存储器装置的地址的数据处理单元的外部,所述数据处理单元为CPU。
7.如权利要求2所述的安全存储器接口,其中,存储器访问信息包括寄存器名,模式选择器包括:各个寄存器标志,所述寄存器标志指示寄存器名对应于启用安全模式还是对应于停用安全模式。
8.如权利要求7所述的安全存储器接口,其中,读取器块和所述各个寄存器标志设置在数据处理单元中,所述数据处理单元为CPU。
9.如权利要求1所述的安全存储器接口,其中,读取器块还包括:状态机,状态机通过从存储器访问信息产生存储器地址和读取使能信号而从存储器装置读取初始读取数据;宽度选择器,宽度选择器控制状态机来读取具有存储器数据宽度的初始读取数据,所述存储器数据宽度取决于至少一个数据宽度控制信号,所述数据宽度控制信号还控制编码器和分离器的操作。
10.如权利要求9所述的安全存储器接口,其中,存储器数据宽度对应于所述存储器装置,所述至少一个数据宽度控制信号对应于数据处理单元的处理数据宽度。
11.如权利要求10所述的安全存储器接口,其中,数据处理单元为通过总线与存储器装置分离的CPU。
12.如权利要求11所述的安全存储器接口,其中,数据处理单元和存储器装置被制造为一个集成电路芯片。
13.如权利要求11所述的安全存储器接口,其中,数据处理单元和存储器装置被制造为两个独立的集成电路芯片。
14.如权利要求1所述的安全存储器接口,所述安全存储器接口还包括:写入器块,当启用安全模式时,写入器块从初始写入数据和检错码产生将被写入存储器装置的最终写入数据;其中,当停用安全模式时,写入器块从初始写入数据产生最终写入数据而不使用检错码。
15.如权利要求14所述的安全存储器接口,其中,写入器块和读取器块利用硬件逻辑门实现。
16.一种安全地访问存储器装置的方法,所述方法包括:当启用安全模式时,通过从由存储器装置传输的初始读取数据中分离检错码来产生将要传输到数据处理单元的最终读取数据;使用来自数据处理单元的存储器访问信息来启用或停用安全模式,从对应的地址和最终读取数据中的至少一种产生期望的检错码;通过将从初始读取数据中分离的检错码与期望的检错码进行比较来产生错误检测信号。
17.如权利要求16所述的方法,所述方法还包括:当停用安全模式时,不分离任何检错码而从初始读取数据产生最终读取数据。
18.如权利要求17所述的方法,其中,存储器访问信息包括指令名,所述方法还包括:当所述指令名对应安全读取指令时,启用安全模式;当所述指令名对应常规读取指令时,停用安全模式。
19.如权利要求17所述的方法,其中,存储器访问信息包括对于初始读取数据将被访问的存储器装置的地址,所述方法还包括:当将被访问的存储器装置的地址为安全地址时,启用安全模式;当将被访问的存储器装置的地址为非安全地址时,停用安全模式。
20.如权利要求17所述的方法,其中,存储器访问信息包括寄存器名,各个寄存器标志指示寄存器名对应于启用安全模式还是对应于停用安全模式。
21.如权利要求16所述的方法,所述方法还包括:通过从存储器访问信息产生存储器地址和读取使能信号而从存储器装置读取初始读取数据;控制状态机来读取具有存储器数据宽度的初始读取数据,所述存储器数据宽度取决于至少一个数据宽度控制信号,其中,所述至少一个数据宽度控制信号对应于数据处理单元的处理数据宽度。
22.如权利要求21所述的方法,其中,数据处理单元为通过总线与存储器装置分离的CPU。
23.如权利要求22所述的方法,其中,数据处理单元和存储器装置被制造为一个集成电路芯片。
24.如权利要求22所述的方法,其中,数据处理单元和存储器装置被制造为两个独立的集成电路芯片。
25.如权利要求16所述的方法,所述方法还包括:当启用安全模式时,从初始写入数据和检错码产生将被写入存储器装置的最终写入数据;当停用安全模式时,从初始写入数据中产生最终写入数据而不使用检错码。本申请要求于2009年1月12日提交的第12/319,788号美国专利申请和于2008年10月1日提交的第2008-0096574号韩国专利申请的优先权,其全部内容通过引用包含于此。
技术领域本发明通常涉及一种具有存储器装置和数据处理单元的电子系统,更具体地讲,涉及一种对数据处理单元安全访问存储器装置或常规访问存储器装置的灵活控制。
背景技术存储器装置易于受诸如使用激光或X射线的缺陷注入(faultxa0injection)攻击。例如,在存储器装置中,激光和X射线通过修改比特状态而实现精确攻击。激光尤其适合在寄存器、RAM(随机存取存储器)装置、EEP(电可擦除可编程)存储器装置和闪速存储器装置中注入缺陷。这种缺陷注入可以是永久性或临时性的。此外,这种缺陷注入攻击可以用于暴露密钥或输出存储器内容。期望检测注入到存储器中的这种缺陷以防止存储在存储器装置中的信息的滥用。在现有技术中,可以用激光检测器来检测激光源。然而,激光检测器不适合检测存储器装置上的激光攻击。在现有技术中,可选择地,存储器装置适合包括检错码的存储。在这种情况下,存储器装置检测在存储器装置内的缺陷注入攻击。然而,在存储器装置内实现这种检错码增加了存储器装置的硅面积(siliconxa0area)。此外,如果存储器装置外部的总线上的比特状态被修改,则检错码可能不能检测存储器装置外部的这种缺陷注入。此外,在现有技术中,存储器装置可以包括具有用于检测存储器装置内的缺陷注入的冗余数据存储的硬件冗余。然而,这种存储冗余导致硅面积倍增,导致高容量存储器装置的超大硅面积。此外,存储冗余的数据校验会导致存储器装置的操作速度较慢。在现有技术中,可选择地,诸如访问存储器装置的CPU(中央处理单元)的数据处理单元包括用于校验数据完整性的软件。然而,也存储在存储器装置中的这种软件易受缺陷注入。此外,CPU软件的代码大小和执行时间随这种额外的数据校验功能而增加。因此,需要检测在存储器装置中或在存储器外部(诸如连接至/源自存储器装置的总线)的缺陷注入的有效机制。
发明内容根据本发明的总体方面,一种安全存储器接口操作为自动检测这种缺陷注入。根据本发明的一方面的安全存储器接口包括读取器块和模式选择器。当启用安全模式时,读取器块通过从由存储器装置传输的初始读取数据中分离检错码来产生将被传输到数据处理单元的最终读取数据。模式选择器使用来自数据处理单元的存储器访问信息来启用或停用安全模式。在本发明的实施例中,当停用安全模式时,读取器块不分离任何检错码而从初始读取数据产生最终读取数据。在本发明的一个实施例中,存储器访问信息包括指令名。在这种情况下,模式选择器包括指令名解码器,当所述指令名对应安全读取指令时,指令名解码器启用安全模式,当所述指令名对应常规读取指令时,指令名解码器停用安全模式。在本发明的另一实施例中,读取器块和指令名解码器设置在为CPU(中央处理单元)的数据处理单元中。在本发明的可选择的实施例中,存储器访问信息包括对于初始读取数据将被访问的存储器装置的地址。在这种情况下,模式选择器包括地址解码器,当将被访问的存储器装置的地址为安全地址时,地址解码器启用安全模式,当将被访问的存储器装置的地址为非安全地址时,地址解码器停用安全模式。在本发明的示例实施例中,地址解码器设置在产生将被访问的存储器装置的地址的数据处理单元的外部,数据处理单元为CPU。在本发明的另一实施例中,存储器访问信息包括寄存器名。在这种情况下,模式选择器包括各个寄存器标志,所述寄存器标志指示寄存器名对应于启用安全模式还是对应于停用安全模式。在本发明的示例实施例中,读取器块和所述各个寄存器标志设置在为CPU(中央处理单元)的数据处理单元中。在本发明的另一实施例中,读取器块包括分离器(demixer)、编码器和比较器。当启用安全模式时,分离器通过从初始读取数据中分离检错码来产生最终读取数据,当停用安全模式时,分离器从初始读取数据产生最终读取数据而不分离任何检错码。编码器从对应的地址和最终读取数据中的至少一种产生期望的检错码。比较器通过将从初始读取数据中分离的检错码与期望的检错码进行比较来产生错误检测信号。在本发明的另一实施例中,读取器块还包括状态机和宽度选择器。状态机通过从存储器访问信息产生存储器地址和读取使能信号而从存储器装置读取初始读取数据。宽度选择器控制状态机来读取具有存储器数据宽度的初始读取数据,所述存储器数据宽度取决于至少一个数据宽度控制信号,所述数据宽度控制信号还控制编码器和分离器的操作。在本发明的示例实施例中,存储器数据宽度对应于存储器装置,所述至少一个数据宽度控制信号对应于数据处理单元的处理数据宽度。在本发明的实施例中,数据处理单元为通过总线与存储器装置分离的CPU。数据处理单元和存储器装置被制造为一个集成电路芯片。可选择地,数据处理单元和存储器装置被制造为两个独立的集成电路芯片。在本发明的另一实施例中,安全存储器接口还包括写入器块,当启用安全模式时,写入器块从初始写入数据和检错码产生将被写入存储器装置的最终写入数据。当停用安全模式时,写入器块从初始写入数据中产生最终写入数据而不使用检错码。在本发明的一方面中,写入器块和读取器块利用CPU中的硬件逻辑门实现。当存储器访问信息包括指令名时,在指令名对应安全写入指令时,指令名解码器启用安全模式,在指令名对应常规写入指令时,指令名解码器停用安全模式。在本发明的另一实施例中,写入器块包括编码器和分离器。编码器从对应的地址和初始写入数据中的至少一种产生检错码。当启用安全模式时,混合器从初始写入数据和检错码中产生混合写入数据,当停用安全模式时,混合器从初始写入数据中产生混合写入数据而不使用检错码。混合写入数据确定最终写入数据。在本发明的另一实施例中,写入器块还包括状态机和宽度选择器。状态机从混合的数据产生最终写入数据、写入使能信号和存储最终写入数据的存储器装置的地址。宽度选择器控制状态机产生具有存储器数据宽度的最终写入数据,所述存储器数据宽度取决于至少一个数据宽度控制信号,所述数据宽度控制信号控制编码器和分离器。根据本发明另一方面的电子系统包括存储器装置、数据处理单元和接口单元。数据处理单元产生存储器访问信息,所述存储器访问信息包括指示存储器装置的访问类型的至少一个地址比特或寄存器名。接口单元根据由存储器访问信息指示的访问类型来访问存储器装置。例如,访问类型包括安全访问或非安全访问。由数据处理单元产生的所述至少一个地址比特确定存储器装置的访问类型。可选择地,由数据处理单元产生的寄存器名确定存储器装置的访问类型。以这种方式,CPU利用安全访问灵活地指定存储在存储器装置中的数据的量和位置。对于由CPU指示的这种数据,利用在CPU中的硬件实现的读取器块和写入器块来检测缺陷注入。因此,对任何容量的存储器装置来说,这样的读取器块和写入器块的硅面积的增加都是不明显的。此外,在存储器装置内或存储器装置和CPU之间的总线处的缺陷注入可被有效地检测。通过参考下面的参照附图的本发明的详细描述,本发明的这些和其它特征和优点将被更好地理解。
附图说明图1示出了根据本发明实施例的具有安全存储器接口的电子系统的框图;图2示出了根据本发明实施例的图1的安全存储器接口的框图;图3示出了根据本发明实施例的图2的安全存储器接口中的写入器块的框图;图4示出了根据本发明实施例的图3的写入器块中的宽度选择器的电路图;图5示出了根据本发明实施例的用于在图3的写入器块中产生检错码的编码器的框图;图6示出了根据本发明实施例的图2中的安全存储器接口中的读取器块的框图;图7示出了根据本发明实施例的包括作为图3的写入器块和/或图6的读取器块中的模式选择器的指令名解码器的CPU的框图;图8示出了根据本发明实施例的包括作为图3的写入器块和/或图6的读取器块中的模式选择器的地址解码器的CPU的框图;图9示出了根据本发明可选实施例的模式选择器设置在CPU外部的图8的变型的框图;图10示出了根据本发明实施例的使用CPU地址比特来指示安全模式的启用或停用;图11示出了根据本发明实施例的包括作为图3的写入器块和/或图6的读取器块中的模式选择器的标志寄存器的CPU的框图;图12示出了表,该表示出了根据本发明实施例的当标志寄存器和地址解码器都用作模式选择器时安全模式的启用或停用;图13示出了根据本发明实施例的具有安全模式的启用和停用的CPU和存储器装置的数据宽度的表;图14示出了根据本发明实施例的图2的安全存储器接口和图3的写入器块的操作过程的步骤的流程图;图15示出了根据本发明实施例的图2的安全存储器接口和图6的读取器块的操作过程的步骤的流程图;图16A示出了根据本发明示例实施例的输入到图5的编码器的表;图16B示出了根据本发明示例实施例的从图5的编码器输出的表。这里涉及的图是为示出的清晰而绘制的,且不必按比例绘制。除非另有说明,否则在图1、图2、图3、图4、图5、图6、图7、图8、图9、图10、图11、图12、图13、图14、图15、图16A和图16B中具有相同标号的元件表示具有相似结构和/或功能的元件。
具体实施方式图1示出了具有存储器装置102、数据处理单元104和总线106的电子系统100的框图。在本发明示例实施例中,电子系统100可以形成为智能卡110的组件。然而,本发明不限于此,本发明可以实施为将电子系统100作其它应用。本发明可以实施为将存储器装置102和数据处理单元104制造为一个集成电路芯片,或者制造为两个独立的集成电路芯片。存储器装置102和数据处理单元104经总线106交换信号。本发明的示例实施例中,数据处理单元104为具有安全存储器接口108(即,接口单元)的CPU(中央处理单元)。参照图1和图2,安全存储器接口108包括模式选择器112、写入器块114和读取器块116。写入器块114从CPUxa0104接收地址(CPU地址)和数据(CPU数据)以将这样的数据写入存储器装置102的特定地址中。读取器块116从CPUxa0104接收地址(CPU地址)以从存储器装置102的特定地址读取数据。模式选择器112启用或停用用于写入器块114和读取器块116的运行的安全模式。写入器块114和读取器块116根据模式选择器112启用或停用安全模式,分别在安全模式或非安全模式下运行。模式选择器112产生指示启用或停用安全模式的安全模式使能信号SMI_Enable。图3示出了根据本发明示例实施例的图2的写入器块114的框图。写入器块114包括宽度选择器202、编码器204、混合器206和存储器写入FSM(有限状态机)208。参照图1、图2和图3,CPUxa0104启用Register_Width信号“24”、“16”和“8”中之一以指示存储器装置102由CPUxa0104处理的比特数(即,CPU数据宽度或更一般地说,处理数据宽度)。例如,CPUxa0104每次产生8比特、16比特或24比特数据给存储器装置102,或从存储器装置102接收8比特、16比特或24比特数据。图13示出了根据CPU数据宽度的存储器装置102中占据的数据比特的表。第一栏902列出了CPU数据宽度的典型示例,例如8比特、16比特或24比特。第二栏904列出了当没有启用安全模式时对于每个CPU数据宽度8比特、16比特和24比特存储在存储器装置102中的对应的比特数。第三栏906列出了当启用安全模式时对于每个CPU数据宽度8比特、16比特和24比特存储在存储器装置102中的对应的比特数。当没有启用安全模式时,来自CPUxa0104的8比特数据在存储器装置102中存储为8比特。类似地,当没有启用安全模式时,来自CPUxa0104的16比特数据在存储器装置102中存储为16比特。此外,当没有启用安全模式时,来自CPUxa0104的24比特数据在存储器装置102中存储为32比特,额外的8比特设置为预定比特。当启用安全模式时,来自CPUxa0104的8比特数据在存储器装置102中存储为16比特,额外的8比特利用检错码产生。类似地,当启用安全模式时,来自CPUxa0104的16比特数据在存储器装置102中存储为32比特,额外的16比特利用检错码产生。此外,当启用安全模式时,来自CPUxa0104的24比特数据在存储器装置102中存储为32比特,额外的8比特利用检错码产生。图13的表的第四栏908表述了从未启用安全模式到启用安全模式,相对于从CPUxa0104产生的比特数(即CPU数据宽度),存储在存储器装置102中的比特数(即存储器数据宽度)的倍数增加(即大小增加因数)。当CPU数据宽度为8比特或16比特且启用安全模式时,相对于从CPUxa0104产生的比特数,存储在存储器装置102中的比特数的倍数为2。当CPU数据宽度为24比特时,即使启用安全模式,相对于从CPUxa0104产生的比特数,存储在存储器装置102中的比特数的倍数仍保持为1。图13的表的第五栏910示出了对CPU数据宽度为8比特、16比特和24比特的示例启用安全模式达到的安全级别。对8比特或16比特的CPU数据宽度,达到的安全级别(即检测缺陷注入的能力)为非常强,这是因为在将用于存储的检错码合并到存储器装置102中之后,比特数增加到2倍。24比特的CPU数据宽度达到的安全级别为强,但没有8比特或16比特的CPU数据宽度达到的安全级别强,这是因为在将用于存储的检错码合并到存储器装置102中之后,24比特的CPU数据宽度的比特数没有增加到两倍。参照图3和图13,宽度选择器202启用存储器数据宽度信号“8”、“16”和“32”之一以控制存储器写入FSMxa0208产生8比特、16比特或24比特的存储器数据。图4示出了示例宽度选择器202的电路图,根据CPU数据宽度信号“8”、“16”和“24”中哪一个被启用并根据安全模式使能信号(SMI_Enable)是否被启用,宽度选择器202启用存储器数据宽度信号“8”、“16”和“32”中的一个。参照图4,宽度选择器202包括反相器220和分别的第一与门222、第二与门224、第三与门226和第四与门228。宽度选择器202还包括分别的第一或门232和第二或门234。安全模式使能信号(SMI_Enable)通过反相器220及与门222和与门226输入。CPU数据宽度信号“24”通过或门232输入,CPU数据宽度信号“16”通过与门222和与门224输入,CPU数据宽度信号通过与门226和与门228输入“8”。反相器220、与门222、与门224、与门226、与门228、或门232和或门234如图4所示连接,从而使或门232输出存储器数据宽度信号“32”,或门234输出存储器数据宽度信号“16”,与门228输出存储器数据宽度信号“8”。参照图4和图13,如图13的第一栏902和第二栏904所示,当启用对应的CPU数据宽度信号“8”、“16”和“24”中的一个且不启用安全模式时,启用对应的存储器数据宽度信号“8”、“16”和“32”中的一个。可选择地,如图13中第一栏902和第三栏906所示,当启用对应的CPU数据宽度信号“8”、“16”和“24”中的一个且启用安全模式时,启用对应的存储器数据宽度信号“16”和“32”中的一个。参照图3,存储器数据宽度信号“8”、“16”和“32”被存储器写入FSMxa0208接收以根据存储器数据宽度信号“8”、“16”和“32”中哪一个被启用来产生8比特、16比特或32比特的存储器数据。图5示出了用于产生当启用安全模式时要使用的检错码(EDC)的编码器204的框图。图5的示例编码器204使用由CPUxa0104产生的CPU数据来产生检错码。然而,本发明还可以实施为编码器从由CPUxa0104产生的CPU数据和CPU地址来产生检错码。在这种情况下,安全模式接口110将检测数据信息和地址信息中的缺陷注入。图16A示出了根据本发明示例实施例的关于启用CPU数据宽度信号“8”、“16”和“24”的每个的图5的编码器204的输入的表。图16B示出了根据本发明示例实施例的关于启用CPU数据宽度信号“8”、“16”和“24”的每个的图5的编码器204的输出的表。参照图5的示例,编码器204包括“E”8比特输入信号242、“Rh”8比特输入信号244和“R1”8比特输入信号248。此外,编码器204包括“EDC_out_H”8比特输出信号258和“EDC_out_L”8比特输出信号260。参照图5、图16A和图16B,当CPU数据宽度为8比特时,“R1”输入信号248包括CPU数据,而“E”输入信号242和“Rh”输入信号244未限定(即图16A中的X)。还是在这种情况下,只有EDC_out_L输出信号260有效,而EDC_out_H输出信号258未限定。因此,当CPU数据宽度为8比特时,EDC_out_L输出信号260包括由混合器206使用的8比特检错码(EDC)。可选择地,当CPU数据宽度为16比特时,“R1”输入信号248包括CPU数据的低字节,“Rh”输入信号244包括CPU数据的高字节,“E”输入信号242固定为0。还是在这种情况下,EDC_out_L输出信号260和EDC_out_H输出信号258都有效。因此,当CPU数据宽度为16比特时,EDC_out_L输出信号260和EDC_out_H输出信号258包括由混合器206使用的16比特检错码(EDC)。当CPU数据宽度为24比特时,“R1”输入信号248包括CPU数据的低字节,“Rh”输入信号244包括CPU数据的中间字节,“E”输入信号242包括CPU数据的高字节。还是在这种情况下,只有EDC_out_H输出信号258有效,而EDC_out_L输出信号260未限定。因此,当CPU数据宽度为24比特时,EDC_out_H输出信号258包括由混合器206使用的8比特检错码(EDC)。编码器204还根据1比特控制信号“Ctrl_16bits_Access”246来运行,在本发明示例实施例中,控制信号“Ctrl_16bits_Access”246可以为CPU数据宽度信号“16”。编码器204还包括预定数据寄存器250、低比特编码单元252、高比特编码单元256和复用器254。“Ctrl_16bits_Access”信号246控制复用器254输出预定数据寄存器250的输出或低比特编码单元252的输出。当对于16比特CPU数据宽度CPU产生16比特数据时,“Ctrl_16bits_Access”信号246被启用为逻辑高状态。在这种情况下,复用器254选择预定数据寄存器250的输出,预定数据寄存器250的输出是将要由高比特编码单元256输入的预定的比特模式(如0x00或0xFF)。之后,高比特编码单元256利用8比特“Rh”输入信号244来产生8比特“EDC_out_H”输出信号258,而信号“E”由CPUxa0104设置为0。还是在这种情况下,低比特编码单元252利用8比特“R1”输入信号248来产生8比特“EDC_out_L”输出信号260。参照图3和图5,当对于16比特CPU数据宽度启用“Ctrl_16bits_Access”信号246时,“EDC_out_H”输出信号和“EDC_out_L”输出信号的总的16比特检错码可用于混合器206。当对于8比特或24比特CPU数据宽度CPU产生8比特或24比特数据时,“Ctrl_16bits_Access”信号246被停用为逻辑低状态。在这两种情况下,低比特编码单元252利用“R1”输入信号248来产生可用于混合器206和复用器254的8比特EDC输出信号“EDC_out_L”260。在这两种情况下,复用器254选择将由高比特编码单元256输入的低比特编码单元252的输出。高比特编码单元256利用“Rh”输入信号244、“E”输入信号242和低比特编码单元252的输出来产生可用于混合器206的8比特EDC输出信号“EDC_out_H”258。在8比特CPU数据宽度的情况下,只有“EDC_out_L”输出信号260有效并被混合器206使用,混合器206忽略“EDC_out_H”输出信号258。在24比特CPU数据宽度的情况下,只有“EDC_out_H”输出信号258有效并被混合器206使用,混合器206忽略“EDC_out_L”输出信号260。参照图2和图3,当CPUxa0104为写入操作而访问存储器装置102时,安全存储器接口108和写入器块114根据图14的流程图运行。CPUxa0104产生写入存储器访问信息,这样的写入命令包括写入指令名、指示要被访问的存储器装置102的地址的CPU地址和要被写入存储器装置102的CPU数据(图14中的步骤S701)。CPU地址指示存储器装置102的存储CPU数据的位置。CPUxa0104可以产生存储这样的CPU数据的对应的寄存器名作为写入存储器访问信息的一部分。模式选择器112从写入存储器访问信息确定安全模式是否被CPU启用(图14的步骤S702)。在本发明的示例实施例中,图7示出了实现为指令名编码器的模式选择器112。在这种情况下,CPUxa0104利用对应的指令名说明写入命令启用或停用安全模式。例如,所述写入命令包括停用安全模式的常规写入指令名,并包括启用安全模式的安全写入指令名。在这种情况下,图7中的模式选择器112对指令名进行解码,以根据指令名启用或停用SMI_Enable信号。对图7的实施例来说,CPU适合执行包括诸如常规写入指令、安全写入指令、常规读取指令和安全读取指令的额外的指令集。常规写入指令名和常规读取指令名中的每个导致SMI_Enable信号的停用,安全写入指令名和安全读取指令名中的每个导致SMI_Enable信号的启用。在本发明的另一实施例中,图8示出了实现为地址解码器264的模式选择器112。在这种情况下,CPUxa0104利用由CPUxa0104内的地址产生器262产生的CPU地址说明写入命令启用或停用安全模式。如图10的示例所示,CPU地址比特数足够指示16兆字节的存储器容量。然而,在电子系统100(例如智能卡)中的所有存储器装置的实际总容量明显小于可寻址的存储器容量。因此,由CPUxa0104产生的CPU地址中的一些比特可以用于指示启用或停用安全模式,这是因为不需要这些比特来指示存储器装置102的地址。在这种情况下,地址解码器264对来自地址产生器262的这样的CPU地址进行解码以启用或停用SMI_Enable信号,SMI_Enable信号用于启用或停用安全模式。例如,地址解码器264包括地址过滤器,所述地址过滤器确定来自地址产生器262的每个CPU地址是用于启用安全模式的安全地址还是停用安全模式的非安全地址。图9示出了地址解码器265形成在CPUxa0104外部的本发明的可选实施例。图9的地址产生器262与图8的地址产生器262相似地运行。在图9中,具有地址解码器265的模式选择器112形成在CPUxa0104的外部,使对电子系统100的CPUxa0104的修改最小化。在本发明可选择的实施例中,图11示出了用与CPUxa0104的多个数据寄存器760对应的标志寄存器750实现的模式选择器112。所述多个数据寄存器760中的每个存储将在CPUxa0104和存储器装置102之间处理的各个CPU数据。当产生写入/读取命令时,CPUxa0104指示包括CPU数据的寄存器的对应的标识符(即对应的寄存器名)。标志寄存器750包括多个寄存器标志,每个寄存器标志对多个寄存器760中对应的一个寄存器760的对应的启用或停用进行设置。例如,寄存器标志#1对应寄存器#1,寄存器标志#2对应寄存器#2,...,等等。图11中的模式选择器112包括标志复用器752,标志复用器752输出由“Register_Select”信号选择的多个寄存器760之一的对应的寄存器标志,以通过寄存器复用器762输出CPU数据。在这种情况下,CPUxa0104产生包括与CPU数据对应的各个寄存器名的写入/读取命令。根据控制复用器752和762的各个寄存器名产生“Register_Select”信号以从多个寄存器760中对应的一个输出寄存器标志750中对应的一个和CPU数据。从标志复用器752选出的寄存器标志为SMI_Enable信号。在图11的实施例中,在CPUxa0104中,标志寄存器750中的每个标志是可编程的。在标志寄存器750为栈操作的每个指针自动指示存储器装置102的安全访问或非安全访问的情况下,图11的实施例对CPUxa0104的栈操作是非常有用的。图12示出了具有地址解码器264或地址解码器265和标志寄存器750的模式选择器112的本发明的可选择的实施例。在这种情况下,根据图12的表,在由CPUxa0104产生的存储器访问信息中的寄存器名和CPU地址均被用于确定启用或停用安全模式。参照图12的表中第一行771,寄存器名的标志指示停用安全模式,CPU地址指示停用安全模式。在这种情况下,停用SMI_Enable信号以停用安全模式。参照图12的表中第二行772,寄存器名的标志指示停用安全模式,但CPU地址指示启用安全模式。在这种情况下,启用SMI_Enable信号以启用安全模式。参照图12的表中第三行773,寄存器名的标志指示启用安全模式,但CPU地址指示停用安全模式。在这种情况下,启用SMI_Enable信号以启用安全模式。参照图12的表中第四行774,寄存器名的标志指示启用安全模式,CPU地址指示启用安全模式。在这种情况下,启用SMI_Enable信号以启用安全模式。以图12中的方式,当寄存器名和CPU地址中的至少一种指示启用安全模式时,启用SMI_Enable信号以启用安全模式。由CPUxa0104产生的存储器访问信息的示例包括如下的一系列读取/写入命令:write_8R0xa0xa00x100secure_write_16A8xa0xa00x10Aread_8xa0R1xa0xa00x102secure_read_24A8xa0xa00x10A示例命令“write_8R0xa0xa00x100”包括指令名“write_8”,指令名“write_8”指示停用安全模式且CPU数据宽度为8比特的常规写入。该命令还包括寄存器名“R0”和CPU地址“0x100”,寄存器名“R0”具有将被写入存储器装置102中的CPU数据,CPU地址“0x100”用于指示写入操作要将访问的存储器装置102的地址。示例命令“secure_write_16A8xa0xa00x10A”包括指令名“secure_write_16”,指令名“secure_write_16”指示启用安全模式且CPU数据宽度为16比特的安全写入。该命令还包括寄存器名“A8”和CPU地址“0x10A”,寄存器名“A8”具有将被写入存储器装置102中的CPU数据,CPU地址“0x100”用于指示写入操作将要访问的存储器装置102的地址。示例命令“read_8xa0R1xa00x102”包括指令名“read_8”,指令名“read_8”指示停用安全模式且CPU数据宽度为8比特的常规读取。该命令还包括寄存器名“R1”和CPU地址“0x102”,寄存器名“R1”接收从存储器装置102读取的数据,CPU地址“0x102”用于指示读取操作将要访问的存储器装置102的地址。示例命令“secure_read_24xa0A8xa00x10A”包括指令名“secure_read_24”,指令名“secure_read_24”指示启用安全模式且CPU数据宽度为24比特的安全读取。该命令还包括寄存器名“A8”和CPU地址“0x10A”,寄存器名“A8”接收从存储器装置102读取的数据,CPU地址“0x10A”用于指示读取操作将要访问的存储器装置102的地址。返回参照图3和图14,当如SMI_Enable信号所指示停用安全模式(图14的步骤S703)时,混合器206将混合数据仅作为CPU数据(即初始写入数据)输出到存储器写入FSMxa0208(图14的步骤S704)。之后,在启用写入使能信号的情况下,存储器写入FSMxa0208将作为存储器数据的CPU数据(即初始写入数据)和作为存储器地址的CPU地址传输到存储器装置102(图14的步骤S707)。因此,所述存储器数据被写入存储器装置102的所述存储器地址上。如上面参照图4和图13所述,写入到存储器装置102的存储器数据的量取决于宽度选择器202的输出。可选择地,当如SMI_Enable信号指示启用安全模式(图14的步骤S703)时,编码器利用CPU数据(即初始写入数据)和/或来自CPUxa0104的对应的CPU地址来产生检错码(EDC)。如上面参照图5、图16A和图16B所述的,检错码(EDC)的比特数取决于CPU数据宽度(图14的步骤S705)。通过混合器206将这样的检错码(EDC)与CPU数据(即初始写入数据)混合以产生具有取决于CPU数据宽度的比特数的混合写入数据(图14的步骤S706)。之后,存储器写入FSMxa0208从这样的混合写入数据中产生存储器数据(即最终写入数据)和存储器地址(图14的步骤S707)。如上面参照图4和图13所述,存储器数据的比特数取决于来自宽度选择器202的存储器数据宽度信号“8”、“16”和“32”。存储器装置102接收所述存储器数据并将所述存储器数据存储到存储器装置102的所述存储器地址中。以这种方式,对于图14的步骤S707中的安全写入操作,当启用安全模式时,存储到存储器装置102中的存储器数据包含检错码(EDC)。图6示出了根据本发明实施例的图2中的读取器块116的框图。读取器块116包括宽度选择器252、编码器254、分离器(demixer)256、存储器读取FSM(有限状态机)258和比较器260。根据本发明示例实施例,图6中的读取器块116中的宽度选择器252和编码器254实现为与图3的写入器块114中的宽度202和编码器204相似。图6的读取器块116中的分离器256与图3的写入器块114中的混合器206相反地运行,以从数据中分离检错码。参照图2和图6,当CPUxa0104为读取操作访问存储器装置102时,安全存储器接口108和读取器块116的组件252、254、256、258和260进一步根据图15的流程图运行。CPUxa0104产生读取存储器访问信息,这样的读取命令包括读取指令名和指示要被访问的存储器装置的地址的CPU地址(图15的步骤S801)。CPU地址指示存储器装置102要被读取的位置。模式选择器112从读取存储器访问信息中确定安全模式是否被CPU启用(图15的步骤S802)。模式选择器112可以根据上述的图7、图8、图9、图10、图11和图12中的任何示例实施例来实现。此外,在启用读取使能信号的情况下,存储器读取FSMxa0258将作为存储器地址的CPU地址传输到存储器装置102(图15的步骤S803)。之后,存储器装置102将作为初始读取数据的存储器数据从存储器装置102的所述存储器地址传输到存储器读取FSMxa0258(图15的步骤S804)。如上面参照图4和图13所述,初始读取数据的比特数取决于来自宽度选择器252的存储器数据宽度信号“8”、“16”和“32”。当如SMI_Enable信号指示停用安全模式(图15的步骤S805)时,分离器256从初始读取数据产生最终读取数据(即CPU数据)而不从初始读取数据中分离任何检错码(图15的步骤S806)。最终读取数据(即CPU数据)被传输到CPUxa0104,其中,最终读取数据的比特数与CPU数据宽度信号“8”、“16”和“24”中被启用的一个CPU数据宽度信号对应。可选择地,当如SMI_Enable信号指示启用安全模式(图15的步骤S805)时,分离器256通过从初始读取数据中分离检错码而从初始读取数据产生最终读取数据(即CPU数据)(图15的步骤S807)。之后,编码器254利用CPU地址和最终读取数据中的至少一种产生期望的检错码(EDC)(图15的步骤S808)。之后,比较器260通过将这样的来自编码器254的期望的EDC与由分离器256从初始读取数据提取的EDC进行比较而产生错误检测信号(SMI_Error)(图15的步骤S809)。如果来自编码器254的期望的EDC与由分离器256从初始读取数据提取的EDC不是基本相同的,则比较器260启用SMI_Error信号以指示检测到缺陷注入到通过存储器读取FSMxa0258接收到的初始读取数据中。电子系统100被通知这样的缺陷注入到初始读取数据中。在本发明的一个实施例中,写入器块114和读取器块116均实现为CPU104中的硬件逻辑门。这样的额外的硬件逻辑门占用CPUxa0104的相对低的硅面积。对于由CPUxa0104指示的安全数据,利用在CPUxa0104中的硬件实现的读取器块114和写入器块116来检测缺陷注入。因此,即使对具有高容量的存储器装置102来说,这样的读取器块114和写入器块116的硅面积的增加也不显著。此外,有效地检测了在存储器装置102内或在存储器102和CPUxa0104之间的总线处的缺陷注入。此外,CPUxa0104可以不管存储器装置102的容量而灵活地指示存储到存储器装置102中的安全数据的量和位置。前述只是为了举例而不是意图限制。因此,任何这里示出和描述的元件的数量只是为了举例。此外,根据本发明示例实施例,写入器块114和读取器块116的组件可以容易地实现为硬件逻辑门,这里给出了这样的组件的描述。然而,本发明还可以实现为用硬件和/或软件的组合实现的写入器块114和读取器块116的组件。本发明仅由权利要求及其等同物限定。